Wireless communication systems and networks are used in connection with many applications, including, for example, satellite communications systems, portable digital assistants (PDAs), laptop computers, and cellular telephones. One significant benefit that users of such applications obtain is the ability to connect to a network (e.g., the Internet) as long as the user is within range of such a wireless communication system.
Current wireless communication systems use either, or a combination of, circuit switching and packet switching in order to provide mobile data services to a mobile node. Generally speaking, with circuit-based approaches, wireless data is carried by a dedicated (and uninterrupted) connection between the sender and recipient of data using a physical switching path. Once the direct connection is set-up, it is maintained for as long as the sender and receiver have data to exchange. The establishment of such a direct and dedicated switching path results in a fixed share of network resources being tied up until the connection is closed. When the physical connection between the sender and the receiver is no longer desired, it is torn-down and the network resources are allocated to other users as necessary.
Packet-based approaches, on the other hand, do not permanently assign transmission resources to a given call, and do not require the set-up and tear-down of physical connections between a sender and receiver of data. In general, a data flow in packet-based approaches is “packetized,” where the data is divided into separate segments of information, and each segment receives “header” information that may provide, for example, source information, destination information, information regarding the number of bits in the packet, priority information, and security information. The packets are then routed to a destination independently based on the header information. The data flow may include a number of packets or a single packet.
The use of packet-based approaches, while allowing used resources to be allocated more efficiently, can also have problems with controlling the level of service provided to a user or limiting the amount of bandwidth a user can use. Unlike circuit switching where the amount of bandwidth is specified when the call is setup, packet based approaches typically try to use as much bandwidth as is needed or available and usually do not limit the data flow unless packets are being dropped. Some protocols such as User Datagram Protocol (UDP), which is used for multimedia applications, do not have any limiting mechanism in the protocol. Protocols such as UDP as used with applications such as streaming video, Voice Over IP (VOIP), and streaming audio because the stream is not interrupted when a small number of packets are lost or dropped by equipment during transmission. When packets are lost or dropped the quality of the transmission can degrade, but there is no attempt to recover the lost information because typically there is no time and the user does not want the transmission interrupted to wait for the lost information. Because some applications do not have any rate limiting or level of service provided in the protocol, Quality of Service (QoS) and other methods to enforce policies to control the data flow have been developed.
In order to enforce policies to control the data flow, hardware and software is deployed on packet-based networks to monitor and control the data flow. Typically, the policy control function is located on a separate network device from the network devices handling the data flows from mobile nodes. This means that communications between these network devices needs to take place before decisions are made about how to control the data flow. This communication increases setup and teardown latency for call sessions and increases the number of signaling events that occur for policy enforcement.